let ( * ) a b = let c = a * b in if Int64.of_int c = Int64.mul (Int64.of_int a) (Int64.of_int b) then c else raise Overflow